﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

using DevExpress.XtraGrid.Views.Grid;
using DevExpress.XtraGrid.Views.Grid.ViewInfo;

using MM.Entities;
using MM.Business;  
namespace MM
{
    public partial class frmDuyetPhieuYC : Form
    {
        string _maphieuyeucau = "";
        string _sConn = "";
        string _nguoitao = "";
        string _matau = "";
        PHIEU_YEU_CAU pycObj = new PHIEU_YEU_CAU();
        List<CHI_TIET_PYC> lstCT = new List<CHI_TIET_PYC>();

        public frmDuyetPhieuYC( string sConn)
        {
            InitializeComponent();
           
            _sConn = sConn;
            _nguoitao = frmDangNhap.objTaiKhoan._soCMND;
            _matau = frmDangNhap.objTau._tenTau2KiTu;

            this.HienthiPHIEU_YEU_CAU_MAX();
            this.HienthiCHI_TIET_PYC();

            
        }
        private void HienthiPHIEU_YEU_CAU_MAX()
        {
            clsPHIEU_YEU_CAU pycCtrl = new clsPHIEU_YEU_CAU(_sConn);
            List<PHIEU_YEU_CAU> lst = new List<PHIEU_YEU_CAU>();
            lst = pycCtrl.SelectPHIEU_YEU_CAU_MAX(_matau);
            if (lst.Count > 0)
            {
                this.txtMaPhieuYeuCau.Text = lst[0].MaPhieuYeuCau;
                this.txtNguoiThucHien.Text = lst[0].NguoiTao;
                this.txtNgayThucHien.Text = lst[0].NgayTao.Day.ToString() + "/" + lst[0].NgayTao.Month.ToString() + "/" + lst[0].NgayTao.Year.ToString();
                
                _maphieuyeucau = this.txtMaPhieuYeuCau.Text.Trim();
                pycObj = lst[0];

                if (pycObj.TinhTrang == 1)
                {
                    this.button1.Enabled = false;
                    this.button2.Enabled = false;
                    this.button3.Enabled = false;
                    this.chkXoa.Checked = true;
                    if (pycObj.SoLanExport > 0) // huy phieu
                        this.button2.Enabled = true;
                    if (pycObj.DaDuyet == 1)
                        chkDaduyet.Checked = true;
                    else
                        chkDaduyet.Checked = false;
                }
                else
                {
                    this.chkXoa.Checked = false;
                    if (pycObj.DaDuyet == 0)
                    {
                        this.button1.Enabled = true;
                        this.button2.Enabled = false;
                        this.button3.Enabled = false;
                        this.chkDaduyet.Checked = false;
                    }
                    else
                    {
                        this.button1.Enabled = false;
                        this.button2.Enabled = true;
                        this.button3.Enabled = true;
                        this.chkDaduyet.Checked = true;
                    }
                }

                if (pycObj.SoLanExport > 0)
                    this.chkXuatFile.Checked = true;
                else
                    this.chkXuatFile.Checked = false;
            }
        }
        private void HienthiPHIEU_YEU_CAU()
        {
            clsPHIEU_YEU_CAU pycCtrl = new clsPHIEU_YEU_CAU(_sConn);
            List<PHIEU_YEU_CAU> lst = new List<PHIEU_YEU_CAU>();
            lst = pycCtrl.SelectPHIEU_YEU_CAU(_maphieuyeucau);
            if (lst.Count > 0)
            {
                this.txtMaPhieuYeuCau.Text = lst[0].MaPhieuYeuCau;
                this.txtNguoiThucHien.Text = lst[0].NguoiTao;
                this.txtNgayThucHien.Text = lst[0].NgayTao.Day.ToString() + "/" + lst[0].NgayTao.Month.ToString() + "/" + lst[0].NgayTao.Year.ToString();                

                if (lst.Count > 0)
                {
                    this.txtMaPhieuYeuCau.Text = lst[0].MaPhieuYeuCau;
                    this.txtNguoiThucHien.Text = lst[0].NguoiTao;
                    this.txtNgayThucHien.Text = lst[0].NgayTao.Day.ToString() + "/" + lst[0].NgayTao.Month.ToString() + "/" + lst[0].NgayTao.Year.ToString();
                    
                    _maphieuyeucau = this.txtMaPhieuYeuCau.Text.Trim();
                    pycObj = lst[0];

                    if (pycObj.TinhTrang == 1)
                    {
                        this.button1.Enabled = false;
                        this.button2.Enabled = false;
                        this.button3.Enabled = false;
                        this.chkXoa.Checked = true;
                        if (pycObj.SoLanExport > 0) // huy phieu
                        {
                            this.button2.Enabled = true;
                        }
                        if (pycObj.DaDuyet == 1)
                            chkDaduyet.Checked = true;
                        else
                            chkDaduyet.Checked = false;
                    }
                    else
                    {
                        this.chkXoa.Checked = false;
                        if (pycObj.DaDuyet == 0)
                        {
                            this.button1.Enabled = true;
                            this.button2.Enabled = false;
                            this.button3.Enabled = false;
                            this.chkDaduyet.Checked = false;
                        }
                        else
                        {
                            this.button1.Enabled = false;
                            this.button2.Enabled = true;
                            this.button3.Enabled = true;
                            this.chkDaduyet.Checked = true;
                        }
                    }

                    if (pycObj.SoLanExport > 0)
                        this.chkXuatFile.Checked = true;
                    else
                        this.chkXuatFile.Checked = false;
                }
            }
        }
        private void HienthiCHI_TIET_PYC()
        {
            clsCHI_TIET_PYC ctCtrl = new clsCHI_TIET_PYC(_sConn);
            clsCHI_TIET_PDH_COMPONENT comCtrl = new clsCHI_TIET_PDH_COMPONENT(_sConn);
            List<CHI_TIET_PDH_COMPONENT> lstCom;
          
            lstCT = ctCtrl.SelectCHI_TIET_PYCByMaPhieuYeuCau(_maphieuyeucau);
            for (int i = 0; i < lstCT.Count; i++)
            {
                if (lstCT[i].TinhTrang == 1)// daxoa
                    lstCT.RemoveAt(i);
                else
                {
                    if (lstCT[i].MaTrangThai == 1)// gia cong
                    {
                        lstCom = new List<CHI_TIET_PDH_COMPONENT>();
                        lstCom = comCtrl.SelectCHI_TIET_PYC_COMPONENT(lstCT[i].MaChiTiet);
                        lstCT[i].lstComponent = lstCom;
                    }
                }
            }
            this.gridControl1.DataSource = lstCT;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                if (lstCT.Count == 0)
                {
                    if (chkDaduyet.Checked == true)
                    {
                        MessageBox.Show("DUYỆT KHÔNG THÀNH CÔNG!\nKHÔNG TỒN TẠI VTPT TRONG DANH SÁCH");
                        return;
                    }
                }
                {
                    clsPHIEU_YEU_CAU pycCtrl = new clsPHIEU_YEU_CAU(_sConn);
                    int kq = -1;
                    pycObj.NgayExport = DateTime.Today;
                    pycObj.NguoiExport = _nguoitao;
                    if (chkDaduyet.Checked == true && pycObj.DaDuyet == 1)
                        return;
                    if (chkDaduyet.Checked == false && pycObj.DaDuyet == 0)
                        return;
                    if (chkDaduyet.Checked == true && pycObj.DaDuyet == 0) // duyet
                    {
                        pycObj.DaDuyet = 1;
                        kq = pycCtrl.usp_UpdatePHIEU_YEU_CAU_Duyet(pycObj);
                    }
                    else
                        if (chkDaduyet.Checked == false && pycObj.DaDuyet == 1)// go duyet
                        {
                            pycObj.DaDuyet = 0;
                            kq = pycCtrl.usp_UpdatePHIEU_YEU_CAU_Duyet(pycObj);
                        }
                   
                    if (kq > 0)
                    {
                        //string y = DateTime.Today.Year.ToString();
                        //string m = DateTime.Today.Month.ToString();
                        //string d = DateTime.Today.Day.ToString();
                        //m = Convert.ToString("0" + m).Substring(m.Length - 1, 2);
                        //d = Convert.ToString("0" + d).Substring(d.Length - 1, 2);

                        //filepath = dg.SelectedPath + "\\" + pycObj.MaPhieuYeuCau.Trim() + "_" + y + m + d + ".csv";
                        // Xuat file Excel PR
                        //pycCtrl.CsvExportPHIEU_YEU_CAU(pycObj, lstCT, filepath);

                        
                        //this.lblThongBao.Text = "DUYỆT THÀNH CÔNG!" + "\r\n" + "GỬI EMAIL ĐÍNH KÈM FILE TẠI: " + filepath + " VỀ ĐỊA CHỈ: vmm@vitranschart.com.vn";
                        if (chkDaduyet.Checked==true)
                            this.lblThongBao.Text = "DUYỆT THÀNH CÔNG!\r\nVUI LÒNG BẤM XUẤT FILE ĐỂ GỬI MAIL THÔNG TIN PHIẾU YÊU CẦU";
                        else
                            this.lblThongBao.Text = "GỠ DUYỆT THÀNH CÔNG!";
                        this.button1.Enabled = true;
                        this.button2.Enabled = true;
                        this.chkDaduyet.Checked = true;

                        this.HienthiPHIEU_YEU_CAU();
                    }
                    else
                        MessageBox.Show("DUYỆT KHÔNG THÀNH CÔNG!");
                }

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }


        }

        private void txtMaPhieuYeuCau_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                _maphieuyeucau = this.txtMaPhieuYeuCau.Text.Trim();
                this.HienthiPHIEU_YEU_CAU();
                this.HienthiCHI_TIET_PYC();               

            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                string filepath = "";
                clsTHAM_SO tsCtrl = new clsTHAM_SO(_sConn);
                THAM_SO tsObj = new THAM_SO();
                tsObj = tsCtrl.SelectTHAM_SO("vDuyetPYC");
                if (tsObj != null && tsObj.DaXoa==0)
                {
                    filepath = tsObj.GiaTri;
                }

                if (filepath == "")
                {
                    FolderBrowserDialog dg = new FolderBrowserDialog();
                    dg.ShowDialog();
                    filepath = dg.SelectedPath;
                }

                if (filepath != "")
                {
                    clsPHIEU_YEU_CAU pycCtrl = new clsPHIEU_YEU_CAU(_sConn);
                    pycObj.NgayExport = DateTime.Today;
                    if (pycCtrl.usp_UpdatePHIEU_YEU_CAU_XuatFile(pycObj) > 0)
                    {
                       

                        string y = DateTime.Today.Year.ToString();
                        string m = DateTime.Today.Month.ToString();
                        string d = DateTime.Today.Day.ToString();
                        m = Convert.ToString("0" + m).Substring(m.Length - 1, 2);
                        d = Convert.ToString("0" + d).Substring(d.Length - 1, 2);
                        filepath = filepath + "\\" + pycObj.MaPhieuYeuCau.Trim() + "_" + y + m + d + ".csv";
                        // Xuat file Excel PR
                        if (pycObj.TinhTrang == 1 && pycObj.DaDuyet == 1) // da huy
                        {
                            if (MessageBox.Show("PHIẾU ĐÃ ĐƯỢC HỦY!\nVUI LÒNG BẤM YES ĐỂ XUẤT LẠI FILE PHIẾU YÊU CẦU ĐÃ HỦY\nVUI LÒNG BẤM NO ĐỂ XUẤT LẠI FILE TRƯỚC KHI HỦY", "THÔNG BÁO", MessageBoxButtons.YesNo) == DialogResult.Yes)
                            {
                                pycCtrl.CsvExportPHIEU_YEU_CAU(pycObj, lstCT, filepath);
                            }
                            else
                            {
                                PHIEU_YEU_CAU pycObj1 = new PHIEU_YEU_CAU();
                                pycObj1 = pycObj;
                                pycObj1.TinhTrang = 0;
                                pycCtrl.CsvExportPHIEU_YEU_CAU(pycObj1, lstCT, filepath);
                            }

                        }
                        else
                        {

                            pycCtrl.CsvExportPHIEU_YEU_CAU(pycObj, lstCT, filepath);

                        }
                        this.lblThongBao.Text = "XUẤT FILE THÀNH CÔNG!" + "\r\n" + "GỬI EMAIL ĐÍNH KÈM FILE TẠI: " + filepath + " VỀ ĐỊA CHỈ: vmm@vitranschart.com.vn";

                    }
                    else
                        MessageBox.Show("XUẤT FILE KHÔNG THÀNH CÔNG!");
                    this.HienthiPHIEU_YEU_CAU();

                }

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            try
            {
                if (MessageBox.Show("Bạn có muốn HỦY PHIẾU YÊU CẦU? ", "THÔNG BÁO",MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    string filepath = "";
                    clsTHAM_SO tsCtrl = new clsTHAM_SO(_sConn);
                    THAM_SO tsObj = new THAM_SO();
                    tsObj = tsCtrl.SelectTHAM_SO("vDuyetPYC");
                    if (tsObj != null && tsObj.DaXoa==0)
                    {
                        filepath = tsObj.GiaTri;
                    }

                    if (filepath == "")
                    {
                        FolderBrowserDialog dg = new FolderBrowserDialog();
                        dg.ShowDialog();
                        filepath = dg.SelectedPath;                       
                    }

                    if (filepath != "")
                    {

                        clsPHIEU_YEU_CAU pycCtrl = new clsPHIEU_YEU_CAU(_sConn);
                        string y = DateTime.Today.Year.ToString();
                        string m = DateTime.Today.Month.ToString();
                        string d = DateTime.Today.Day.ToString();
                        pycObj.TinhTrang = 1;
                        if (pycCtrl.usp_UpdatePHIEU_YEU_CAU_Xoa(pycObj) > 0)
                        {

                            if (pycObj.SoLanExport > 0)// daduyet & DA XUAT FILE
                            {

                                m = Convert.ToString("0" + m).Substring(m.Length - 1, 2);
                                d = Convert.ToString("0" + d).Substring(d.Length - 1, 2);
                                filepath = filepath + "\\" + pycObj.MaPhieuYeuCau.Trim() + "_" + y + m + d + "_Del.csv";
                                // Xuat file Excel PR
                                pycCtrl.CsvExportPHIEU_YEU_CAU(pycObj, lstCT, filepath);

                                this.lblThongBao.Text = "HỦY PHIẾU THÀNH CÔNG!" + "\r\n" + "GỬI EMAIL ĐÍNH KÈM FILE TẠI: " + filepath + " VỀ ĐỊA CHỈ: vmm@vitranschart.com.vn";
                            }
                            else
                                MessageBox.Show("PHIẾU YÊU CẦU ĐÃ ĐƯỢC XÓA");

                            this.button1.Enabled = false;
                            this.button2.Enabled = true;

                            this.chkXoa.Checked = true;

                            this.HienthiPHIEU_YEU_CAU();
                        }
                        else
                            MessageBox.Show("HỦY KHÔNG THÀNH CÔNG!");
                    }
                    
                }

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

        }

        private void frmDuyetPhieuYC_Load(object sender, EventArgs e)
        {
            Common.SetColor(this);
            this.lblThongBao.BackColor = this.BackColor;
        }

        private void label1_Click(object sender, EventArgs e)
        {
            frmTimPhieuYC f = new frmTimPhieuYC(_sConn);
            f.chonPYC += new frmTimPhieuYC.ChonPhieuYeuCau(GetPhieuYeuCau);
            f.Show(this);
        }
        private void GetPhieuYeuCau(object sender, ChonPhieuYCEventArgs e)
        {
            _maphieuyeucau = e.MaPhieuYeuCau;

            this.HienthiPHIEU_YEU_CAU();
            this.HienthiCHI_TIET_PYC();            
        }

        private void chkDaduyet_Click(object sender, EventArgs e)
        {
            try
            {
                if (pycObj.SoLanExport == 0)// chua xuat file
                    this.button1.Enabled = true;
                else
                {
                    MessageBox.Show("KHÔNG THỂ GỠ DUYỆT. FILE ĐÃ ĐƯỢC XUẤT");
                    this.chkDaduyet.Checked = true;
                }
            }
            catch { }
        }

        private void frmDuyetPhieuYC_FormClosing(object sender, FormClosingEventArgs e)
        {
            if ((pycObj.DaDuyet == 0 && chkDaduyet.Checked == true) || (pycObj.DaDuyet == 1 && chkDaduyet.Checked == false))
            {
                if (MessageBox.Show("Bạn chưa cập nhật thay đổi thông tin Duyệt/Gỡ Duyệt phiếu.\r\nBẠN CÓ MUỐN THOÁT KHÔNG ?", "THÔNG BÁO", MessageBoxButtons.YesNoCancel) == DialogResult.Yes)
                    e.Cancel = false;
                else
                    e.Cancel = true;
            }
        }
    }
}